home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
qlib205.zip
/
QLIB.ZIP
/
TEST
/
STATS.ASM
< prev
next >
Wrap
Assembly Source File
|
1997-05-28
|
4KB
|
130 lines
; This program will dump data (usually stuff just in the header) of ANY file
; that I've created.
; NOTE : this program requires PLAYv1.0 and M32vx.x installed
; see Qlib Download Add-ons section on my homepage
; to do : PIC, PAcKs? ...
include qlib.inc
include string.inc
include stdio.inc
include dos.inc
include process.inc
.data
hand dw ?
header db 3 dup (?)
.code
main proc,argc:byte,argv:dword
callp print,"File STATS v1.02 by : Peter Quiring\n"
.if argc!=2
callp print,"Usage : STATS (file) [Supports EXE]\n"
ret
.else
callp print,"\n"
.endif
mov eax,argv
mov eax,[eax+1*4] ;1st argument (file name)
callp open,eax,0
.if eax==ERROR
callp print,"File not found\n"
callp exit,0
.endif
mov hand,ax
callp read,hand,offset header,3
callp lseek,hand,0,SEEK_SET
; callp memcmp,offset header,"FLK",3
; .if !eax
; jmp FLK
; .endif
; callp memcmp,offset header,"M32",3
; .if !eax
; jmp M32
; .endif
callp memcmp,offset header,"MZ",2
.if !eax
jmp EXE
.endif
callp close,hand
callp printf,"File type unknown\n"
ret
done::
callp close,hand
ret
main endp
comment ^
.data
flk_head play_flk <>
.code
FLK:
callp read,hand,offset flk_head,sizeof flk_head
callp printf," FLK format :\n"
callp printf,"X : %w\n",flk_head.xres
callp printf,"Y : %w\n",flk_head.yres
callp printf,"bpp : %b\n",flk_head.bpp
callp printf,"Frames : %w\n",flk_head.total
callp printf,"Speed : %d\n",flk_head.spd
callp printf,"Flgs : %b\n",flk_head.flgs
jmp done
.data
m32_head m32_headers <>
.code
M32:
callp read,hand,offset m32_head,sizeof m32_head
mov al,[m32_head.head+4]
callp printf," M32 format : Ver%c\n",al
callp printf,"Songname : %s\n",offset m32_head.songname
callp printf,"# patterns : %b\n",m32_head.npat
callp printf,"# channels : %b\n",m32_head.nch
callp printf,"bits/sample : %b\n",m32_head.res
callp printf,"SampleRate : %w\n",m32_head.freq
callp printf,"Speed : %b\n",m32_head.spd
callp printf,"Notes/sec : %b",m32_head.nfreq
.if m32_head.nfreq==64
callp printf," (M32 format)\n"
.else ;50!
callp printf," (Amiga format)\n"
.endif
callp printf,"Samples : "
.if m32_head.saminc
callp print,"YES\n"
.else
callp print,"No\n"
.endif
jmp done
^
.data
exe_hdr db 28 dup (?)
.code
EXE:
callp print,"EXE format:\n\n"
callp read,hand,offset exe_hdr,sizeof exe_hdr
callp printf,"Offset Value Description\n------------------------------\n"
callp printf," 0h(0) %04Xh(%05d) Signature (MZ)\n",wptr exe_hdr[0],wptr exe_hdr[0]
callp printf," 2h(2) %04Xh(%05d) Extra Bytes\n",wptr exe_hdr[2],wptr exe_hdr[2]
callp printf," 4h(4) %04Xh(%05d) Pages(512 bytes)\n",wptr exe_hdr[4],wptr exe_hdr[4]
callp printf," 6h(6) %04Xh(%05d) # Reloc Items\n",wptr exe_hdr[6],wptr exe_hdr[6]
callp printf," 8h(8) %04Xh(%05d) EXE Header size(*16)\n",wptr exe_hdr[8],wptr exe_hdr[8]
callp printf," 0ah(10) %04Xh(%05d) Min alloc(*16)\n",wptr exe_hdr[0ah],wptr exe_hdr[0ah]
callp printf," 0ch(12) %04Xh(%05d) Max alloc(*16)\n",wptr exe_hdr[0ch],wptr exe_hdr[0ch]
callp printf," 0eh(14) %04Xh(%05d) Init SS\n",wptr exe_hdr[0eh],wptr exe_hdr[0eh]
callp printf," 10h(16) %04Xh(%05d) Init SP\n",wptr exe_hdr[10h],wptr exe_hdr[10h]
callp printf," 12h(18) %04Xh(%05d) Check Sum\n",wptr exe_hdr[12h],wptr exe_hdr[12h]
callp printf," 14h(20) %04Xh(%05d) Init IP\n",wptr exe_hdr[14h],wptr exe_hdr[14h]
callp printf," 16h(22) %04Xh(%05d) Init CS\n",wptr exe_hdr[16h],wptr exe_hdr[16h]
callp printf," 18h(24) %04Xh(%05d) Reloc Table Offset\n",wptr exe_hdr[18h],wptr exe_hdr[18h]
callp printf," 1ah(26) %04Xh(%05d) Overlay #\n",wptr exe_hdr[1ah],wptr exe_hdr[1ah]
jmp done
end